//
//  TYPlayerCommunicateProtocol.h
//  AngerDragon
//
//  Created by gaotime_macbook_2 on 11-12-11.
//  Copyright 2011 __MyCompanyName__. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "TYBeHurtProtocol.h"

/// 所有NPC和player对象通信协议(设计的意义是, 外界只关注player的具体行为,而不关注player的具体内部实现, 只要协议不变, 内部变化不会影响外调调用)
@protocol TYPlayerCommunicateProtocol
@required
/// 判断是否已经死亡
- (BOOL) player_isDead;
/// 增加player剩余生命值
- (void) player_increaseRemainLife:(NSInteger) a_n_value;
/// 增加player生命值上线
- (void) player_increaseLimitLife:(NSInteger) a_n_value;
/// 伤害player(本接口的返回值, 就是player的反伤值, 这里考虑很多近战怪物攻击player后, player会反伤它们)
- (NSInteger) player_hurtPlayer:(NSInteger) a_n_hurt_value;
/// 增加player金钱数
- (void) player_addMoney:(NSInteger) a_n_money;
/// 增加 可以继续游戏的次数(考虑玩家购买剩余游戏次数的情况, 一次买多个)
- (void) player_addContinueGameTime:(NSInteger) a_n_add_times;
/// 减少 可以继续游戏的次数(每次减少1次游戏次数)
- (void) player_subContinueGameTime;
/// 获取剩余的游戏次数
- (NSInteger) player_getContinueGameTime;

/// 获取player的碰撞矩形
- (CGRect) player_getCollisionRect;

/// 增加player摧毁的精灵数量(参数:精灵类型)
//- (void) player_addDestroySpriteNum:(NSInteger) a_n_sprite_type;

/// 敌人获取能够对player造成有效攻击的点坐标, 根据其攻击距离来计算(敌人要移动到有效攻击点, 才能进行攻击行为)
- (CGPoint) player_getEffectivePointOfAttack:(CGPoint) a_st_enemy_sprite_point attackDistance:(CGFloat) a_f_attack_distance;
/// 敌人精灵根据其攻击距离和其当前坐标, 判断是否可以开始攻击player
- (BOOL) player_isCanAttackPlayer:(CGPoint) a_st_enemy_sprite_point attackDistance:(CGFloat) a_f_attack_distance;
/// 获取player的中心点坐标
- (CGPoint) player_getPointOfCenter;
@end
